/**
 * @file MessageDialog.h
 *
 * Klasa okienka komunikatu programu - nagłówek.
 *
 * @author Zbigniew Siciarz
 * @date 2009
 * @version 2.0.0
 * @since 2.0.0
 */

#ifndef MESSAGEDIALOG_H
#define MESSAGEDIALOG_H

#include "ui_MessageDialog.h"
#include "dogz/Exceptions.h"
#include <QDialog>
#include <QString>

/**
 * Okienko komunikatów programu.
 *
 * Własna wersja MessageBoxa ;)
 */
class MessageDialog : public QDialog
{
    Q_OBJECT

public:
    MessageDialog(const QString& title = "", const QString& message = "");
    ~MessageDialog() {}

    void setTitle(const QString& title) { ui.lblHeader->setText(title); }
    void setMessage(const QString& message) { ui.lblContent->setText(message); }

    static void setParentForAllMessages(QWidget* parent) { s_parent = parent; }

    static void showInformation(const QString& title, const QString& message);
    static void exception(Dogz::FileException& e);
    static void exception(Dogz::DbException& e);

private:
    /**
     * Klasa GUI wygenerowana przez Designera.
     */
    Ui::MessageDialogClass ui;

    /**
     * Obiekt rodzica wspólny dla wszystkich okienek.
     */
    static QWidget* s_parent;
};

#endif // MESSAGEDIALOG_H
